
--[[
所有BOSS技能冷却8秒，释放顺序按照技能1\2\3释放，默认BOSS拥有1技能，BOSS最大生命值低于60%时，获得2号技能，下次释放技能必定为2号技能，最大生命值低于35%时，获得3号技能，之后依次释放。
]]

ac.skill('Boss施法'){
    skill_type = 'passive',
    cool = 10,
    index = 0,
    on_add = function(self)
        local hero = self.owner
        local skills = {}
        self.queue = {}
        for a=1,3 do
            local skill = hero:find_skill(a,'英雄')
            if skill then
                table.insert(self.queue,skill)
                ac.wait(100,function()
                    skill.range = hero:get('攻击距离')
                end)
            end
        end
        self:gc(ac.loop(200,function()
            local index = self.index%(#self.queue) + 1
            local skill = self.queue[index]
            if self:is_cooling()==false and hero:has_restriction '硬直'==false then
                local target = ac.selector('unit'):range(hero,skill.range):enemy(hero):is_type('英雄'):random()
                if target then
                    self:active_cd()
                    skill:cast(target)
                    self.index = self.index + 1
                end
            end
        end))
    end,
}

ac.buff('技能蓄力'){
    animation = '',
    progress_type = -1,
    on_cover = function(self)
        return true
    end,
    on_add = function(self)
        local hero = self.owner
        local skill = self.skill
        self.title = skill and skill.title or self.title
        hero:add_restriction '硬直'
        hero:wait(0, function()
            hero:play_animation (self.animation )
        end)
        self:gc(function()
            hero:remove_restriction '硬直'
        end)
    end,
}